package com.hexacta.hrs.sandbox.tasks2.service;

import com.hexacta.hrs.sandbox.tasks2.model.Activity;
import com.hexacta.hrs.sandbox.tasks2.model.Task;
import com.hexacta.hrs.sandbox.tasks2.model.User;

public interface UserService {

	/**
	 * 
	 * busca un usuario por nombre
	 * 
	 * @param name
	 * @return user
	 */
	public User findByName(String name);

	/**
	 * agrega un usuario
	 * 
	 * @param user
	 */
	public void addUser(User user);

	/**
	 * crea un usuario nuevo
	 * 
	 * @param name
	 * @return usuario creado
	 */
	public User createUser(String name);

	/**
	 * agrega la actividad al usuario
	 * 
	 * @param user
	 * @param activity
	 */
	public void addActivity(User user, Activity activity);

	/**
	 * busca un usuario por id
	 * 
	 * @param id
	 * @return
	 */
	public User findById(Long id);

	/**
	 * agrega una tarea a la actividad
	 * 
	 * @param selectedActivity
	 * @param task
	 */
	public void addTask(Activity activity, Task task);

	/**
	 * busca por nombre la actividad del usuario dado
	 * 
	 * @param user
	 * @param selectedActivity
	 * @return
	 */
	public Activity findActivityByName(User user, String selectedActivity);

	/**
	 * busca una actividad por id
	 * @param long1
	 * @return
	 */
	public Activity findActivityById(Long long1);

	/**
	 * busca una tarea segun su id
	 * @param long1
	 * @return
	 */
	public Task findTaskById(Long long1);

	/**
	 * modifica la duracion de una tarea
	 * @param task
	 * @param parseInt
	 */
	public void modifyTaskDuration(Task task, int parseInt);

}
